Code:
/************************************************************************/
/* delete all the value between x and y in the sequential list */
/************************************************************************/
#include <stdio.h>
#define DATA_NUM 15
void inputData(int *dataArray, int *len)
{
int i = 0;
int data = 0;
int length = 0;
printf("please input integers(0-15),-1 is end\n");
for (i=0; i<DATA_NUM; ++i)
{
scanf("%d", &data);
if (-1 == data)
{
break;
}
*(dataArray + i) = data;
++length;
}
*len = length;
}
void outputData(int *data, int len)
{
int i = 0;
printf("the data list is : ");
for (i=0; i<len; ++i)
{
printf("%d ", *(data + i));
}
printf("\n");
}
void delDataAToB(int *dataArray, int *len, int a, int b)
{
int i = 0;
int j = 0;
int index = 0;
for (i=0; i<*len; ++i)
{
j = i;
while (*(dataArray + j) >= a && *(dataArray + j) <= b)
{
++index;
++j;
continue;
}
if (index > 0)
{
for (; j<*len; ++j)
{
*(dataArray + j - index) = *(dataArray + j);
}
*len -= index;
--i;
index = 0;
}
}
}
int main()
{
int dataArray[DATA_NUM] = {0};
int len = 0;
int aData = 0, bData;
inputData(dataArray, &len);
outputData(dataArray, len);
printf("input the scope of deleting data: ");
scanf("%d%d", &aData, &bData);
delDataAToB(dataArray, &len, aData, bData);
outputData(dataArray, len);
return 0;
}